#ifndef _GAME_MANAGER_
#define _GAME_MANAGER_

#include "ITickable.h"
#include "GameBoard.h"
#include "WorldManager.h"
#include "PlayerEntity.h"

class GameManager : public ITickable
{
public:
	GameManager();
	virtual ~GameManager();
	void Tick();
	bool IsActive();
	bool Initialize(int argc, char **argv);

	/*void EnqueueEvent(GameEvent g);
	
	void ProcessEvents();*/

	// event handlers
	void ProcessMouse(int, int) ;
	void ProcessMouseClick(int button, int state, int x, int y);
	void KeyboardInput(unsigned char c, int x, int y);
	void ProcessSpecialInput(int key, int x, int y);

	bool StartNewGame(WorldManager * worldMgr);
	bool EndGame(bool success);

private:
	bool m_isActive;
	GameBoard *m_gameBoard;
	PlayerEntity *m_player;
};

#endif //_GAME_MANAGER_